TypeScriptのModule Resolution Strategy(モジュール解決アルゴリズム)
This is really no more complex than what Node.js itself is doing.
Notice that Node.js jumped up a directory in steps (4) and (7).
(7)じゃなくて(9)...?
一番直感的?
tsファイルStart.tsからmoduleBのimportがあったとする。 相対import
Start.ts
import * from "./moduleB"
検索対象: Start.tsから指定した相対位置にあるmoduleB.ts, moduleB.d.tsファイル https://gyazo.com/0700dcf036c6305896286d389649a3b3
非相対import
import Start.ts from "moduleB"
Startの位置から上へ上へ辿っていっていって、moduleBを見つける。
https://gyazo.com/7ec881079be2df282ac3ccacba62bf94
tsファイルStart.tsからmoduleBのimportがあったとする。 指定したmoduleBがフォルダである可能性も考慮して走査する。
検索対象
1. moduleB.ts, .tsx, .d.ts
2. moduleBフォルダの中のpackage.json中のtypesで記述されたファイル
3. moduleBフォルダのindex.ts/.tsx/.d.ts
https://gyazo.com/cbb03560a86616011e58dfcce9256e44
1. Start.tsの存在するフォルダのnode_modules中のmoduleB.ts, .tsx, .d.ts 2. Start.tsの存在するフォルダの./node_modules/@types/中のmoduleB.d.ts 3. Start.tsの存在するフォルダの./node_modules/moduleB/中のindex.ts, .tsx, .d.ts 4. 以降、これをツリーの祖先側へ一段上げた上で、ルートのnode_modulesにあたるまで繰り返す。
https://gyazo.com/ecaef29d13ae5b5ad55f380aa7dde149